A storage system generally includes a storage controller and a plurality of nonvolatile storage devices which can be accessed randomly. The nonvolatile storage device is, for example, a hard disk drive (HDD) or a solid state drive (SSD). Both of the drives may be used together.
Since the storage system includes a plurality of storage devices, for example, the plurality of storage devices are integrally connected to a backend switch so as to be connected to the storage controller and be controlled. For example, PTL 1 discloses a storage system including a backend switch.
The storage system includes, for example, two storage controllers, and, thus, even if an operation of one thereof is stopped, the other storage controller continuously performs an operation as the storage system, and thus availability is maintained. The two storage controllers are connected to each other via a special communication path which is different from that of the backend switch, and exchange various pieces of control information with each other. PTL 1 discloses a configuration in which the storage system includes the two storage controllers and a bus which is different from that of the backend switch.
A communication protocol for easy direct connection to processors of the storage controllers is used for the communication path between the two storage controllers in order to suppress overhead related to communication. An example of the communication protocol for easy direct connection to the processors is PCI Express which is a communication protocol between the processors and an input/output device.
In contrast, as a communication protocol between the storage controllers and storage devices connected to the backend switch, generally, Small Computer System Interface (SCSI), Fibre Channel, or Serial Attached SCSI (SAS) is used.
A communication path with such a communication protocol between a storage controller and a storage device cannot be directly connected to a processor of the storage controller, and requires a dedicated interface so as to be used for communication between storage controllers.
For example, PTL 2 discloses a technique in which communication between different storage controllers is performed via a backend switch. In the technique disclosed in PTL 2, communication between different storage controllers can be performed via a shared storage area included in the backend switch. PTL 3 discloses a technique in which a shared memory is provided between two storage controllers, and a special communication path for duplication is provided therebetween.
As a communication protocol between a storage controller and a storage device, in recent years, NVM Express compatible with PCI Express has been newly used.